import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import Markdown from 'vite-plugin-md';
import { resolve } from 'path';

// https://vite.dev/config/
export default defineConfig({
	plugins: [
		vue({
			include: [ /\.vue$/, /\.md$/ ] // 让Vue插件也编译.md文件
		}),
		Markdown() // 添加markdown插件
	],
	build: {
		rollupOptions: {
			// 请确保外部化那些你的库中不需要的依赖
			external: [
				'vue',
				'highlight.js',
				'jest',
				'pinia',
				'sass',
				'sass-loader',
				'vite-plugin-md',
				'vue-router',
				'@babel/preset-env',
				'@vitejs/plugin-vue',
				'@vue/reactivity',
				'@vue/test-utils',
				'babel-jest',
				'babel-preset-vite',
				'eslint',
				'eslint-plugin-vue',
				'vite',
				'vue-jest',
				'commitizen',
				'cz-conventional-changelog'
			],
			output: {
				// 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
				globals: {
					vue: 'Vue'
				}
			}
		},
		lib: {
			entry: './packages/index.js',
			name: 'zkz-testUI'
		}
	},
	resolve: {
		alias: {
			'@': resolve(__dirname, 'src')
		}
	},
	css: {
		// css预处理器
		preprocessorOptions: {
			scss: {
				// 引入 mixin.scss 这样就可以在全局中使用 mixin.scss中预定义的变量了
				// 给导入的路径最后加上 ;
				additionalData: /* @vite-ignore */ '@import "@/assets/styles/mixin.scss";'
			}
		}
	}
});
